ワークスペース内のあらゆる事について検索できる API です。この API はtokenを除くとqueryフィールドが必須です。
query
一番重要な引数で、ここに置いたテキストでワークスペース内を検索します。スペースなどを挟んで複数のワードを置いた場合or検索(どちらかが含まれてればマッチ)します。
また、幾つかの特殊なプレフィックスが用意されており、それらを組み合わせることで効率良く結果を絞り込むことができます。
in:<channel-name>やin:<group-name>、in:@<user-id>のようにin:の後ろにチャンネル名やユーザー名などを続けることで、検索対象をそれら指定したチャンネル内や DM 内に絞り込めます。
他にfrom:があります。これをfrom:@<user-name>やfrom:<bot-name>のように使う事で、その人の発言だけに絞り込めます。
ボット名での絞り込みの注意点
Slack ではボット名は割と適当に決めてchat.postMessageから投稿できてしまいます。例えば、jun というアプリから john というボット名で投稿するといった具合です。
そのメッセージはfrom:Johnでちゃんと検索できます。しかし、その後のワークスペースの管理の方法によってはfrom:johnでの検索で引っかからなくなる恐れがあります。
それはjohnというアプリをインストールした場合です。その環境になると jun アプリのアクセストークンでfrom:johnと検索してもメッセージは引っかかりません。
その環境でどうしても検索したいのであれば、john アプリで Bot Access Token を作り、それを使ってsearch.messageをリクエストするしかなくなります。
count
結果1ページ辺りのメッセージ数です。
page
何ページ目の結果を返すかどうかです。
highlight
trueを指定するとマッチした箇所のテキストが\ue000と\ue001で挟まれて返されます。